package dingo

import (
	"log"
	"time"
)

// 在 context.ShouldBindJSON 时，会调用 field.UnmarshalJSON 方法

// 在 context.JSON 时，会调用 field.MarshalJSON 方法

// 时间转换
type Time int64
const timeFormart = "2006-01-02 15:04:05"

// 转换成时间戳
func (t *Time) UnmarshalJSON(data []byte) (err error) {
	log.Println(data)
	log.Println(string(data))
	now,err := time.ParseInLocation(`"` + timeFormart + `"`, string(data), time.Local)
	log.Println(now)
	//*t = int64(now.Unix())
	return
}

// 转换成自定义格式
func (t Time) MarshalJSON() ([]byte, error) {
	b := make([]byte, 0, len(timeFormart) + 2)
	b = append(b, '"')
	b = time.Unix(int64(t), 0).AppendFormat(b, timeFormart)
	//b = time.Time(t).AppendFormat(b, timeFormart)
	b = append(b, '"')
	return b, nil
}
